package org.jeecg.modules.demo.ch.Utils;/**
 * @author yxx
 * @create 2022-10-19 8:44
 */

import cn.hutool.core.collection.CollUtil;
import cn.hutool.log.Log;
import cn.hutool.log.LogFactory;
import cn.hutool.poi.excel.ExcelUtil;
import cn.hutool.poi.excel.ExcelWriter;
import org.jeecg.modules.demo.ch.exception.CustomException;

import javax.servlet.http.HttpServletResponse;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;

/**
 * @Description:Hutool实现excel导出工具类
 * @author:yxx
 * @date:2022年10月2022/10/19日8:44
 */
public class ExportExcelUtil {

    static final Log logger = LogFactory.get(ExportExcelUtil.class);

    public static void exportMothod(HttpServletResponse response, Class clazz, List<?> list, String fileName, String[] removeField) throws CustomException {
        if (CollUtil.isNotEmpty(list)) {
            if (!list.get(0).getClass().equals(clazz)) {
                logger.error("数据类型与传入的集合数据类型不一致!数据类型:{} 集合数据类型:{}", clazz, list.get(0).getClass());
                throw new CustomException("数据类型与传入的集合数据类型不一致！");
            } else {

                try {
                    //获取输出构造器
                    ExcelWriter writer = ExcelUtil.getWriterWithSheet(fileName);
                    //获取当前类字段（反射也可以使用hutool工具包里面的相关方法）
                    Field[] fields2 = clazz.getDeclaredFields();
                    //字段名称集合
                    ArrayList<String> fileNames = new ArrayList<>();
                    //字段中文名称集合（ApiModelProperty注解的value值）
                    List<String> cnNames = new ArrayList<>();
                    //时间字段的额列位置
                    for (Field field : fields2) {

                    }
                } catch (Exception e) {
                    logger.error(e.getMessage());
                    e.printStackTrace();
                }
            }
        }
    }
}
